package com.deyuanyun.pic.ctrl.service;


import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.deyuanyun.pic.ctrl.controller.dto.CathRepairTaskQueryVO;
import com.deyuanyun.pic.ctrl.domain.CpRecRecode;
import com.deyuanyun.pic.ctrl.domain.CpRecTask;
import com.deyuanyun.pic.ctrl.enumeration.EqptTypeEnum;

/**
 * 阴保整改任务Service
 *  
 * @author ChenKui
 * @date 2016-06-20
 */
public interface CathRepairTaskService {
    
    
    /**
     * 查询阴保整改任务列表
     * 
     * @param repairTaskVO
     * @return
     */
    List<CpRecTask> queryRepairTaskList(CathRepairTaskQueryVO repairTaskVO);

    /**
     * 获取阴保整改任务的设备记录
     * 
     * @param defectSuggest
     * @return
     */
    List<CpRecRecode> queryRepairRecodeList(String repairTaskId,EqptTypeEnum eqptTypeEnum);
    

    /**
     * 创建或者修改阴保整改任务
     *  repairTask.id有值为update，否则为create。
     * @param repairTask
     * @param cpRecRecodes
     */
    void createOrUpdate(CpRecTask repairTask, CpRecRecode[] cpRecRecodes);
    
    /**
     * 导入阴保整改记录
     * 
     * @param repairTaskId
     * @param cpRecRecodes
     */
    void createOrUpdateRecord(String repairTaskId,CpRecRecode[] cpRecRecodes);
    /**
     * 修改阴保整改任务为删除状态，同时将所包含的缺陷点全部回归初始情况。
     *  即delete=1标记删除
     * 基于未来事务拓展的考虑，调用的是RepairTaskService.updateByPrimaryKeySelective来实现的update
     * 
     * @param rtIds 要删除的阴保整改任务编号
     */
    int updateToDelete(String[] rtIds);

    

    /**
     * 查询阴保整改效果
     * 
     * @param repairTaskId
     * @param testingDate
     */
    List<Map<String,Object>> queryCathRepairTaskEffect(@Param("repairTaskId") String repairTaskId
            ,@Param("testingDate") Date testingDate);
    
    CpRecTask selectByPrimaryKey(String id);

    int deleteByPrimaryKey(String id);

    int updateByPrimaryKeySelective(CpRecTask record);

    int updateByPrimaryKey(CpRecTask record);

    int insert(CpRecTask record);
}